﻿using System;
using System.Linq;
using System.Windows.Input;

namespace PhantomMvvmToolkit
{
    /// <summary>
    /// This interface inherits from ICommand, so use this in place of ICommand.
    /// </summary>
    public interface IPhantomCommand : ICommand
    {
        /// <summary>
        /// Needs to invokes the CanExecuteChanged event if it is not null.  The OnCanExecuteChanged extension will fire this 
        /// method when it needs to invoke CanExecuteChanged.
        /// </summary>
        /// <param name="args">The <see cref="System.EventArgs"/> instance containing the event data.</param>
        void InvokeCanExecuteChanged(EventArgs args);
    }
}
